Rate control is one of the most important modules in video coding. One aspect of rate control is related to determining the number of bits given to each video frame (frame level control), so that a specified average bit-rate can be achieved. Another aspect of rate control is related to the allocation of the number of bits within blocks of a video frame given a total number of bits for a video frame (block level control). Traditionally, frame level control and block level controls are performed independently. For example, a video sequence of 100 frames is to be compressed using a total of 1000000 bits. Frame level rate control determines how many bits each of the 100 frames receives to achieve a total of 1 million bits. An example strategy would be to divide it equally, so that each frame will receive 10000 bits. Block level rate control, on the other hand, assumes a given number of bits for a video frame, and distributes them to blocks inside a frame.
An improved system and method for block level rate control would be an improvement over conventional encoding systems and methods.